As it is generally known, electronic forms are commonly used to obtain various specific types of data from computer system users. When filling out electronic forms, via Web pages or other software application programs, the user frequently finds that they are entering the same data repeatedly. For example, consumers of products or services offered over the World Wide Web (“Web”) are constantly entering their names, addresses, etc., for collection by on-line retailers. For users that enter form data as part of their work, for example in jobs that include insurance claim processing, medical records transcribing, etc., their productivity may be determined by their rate and accuracy in filling out electronic forms. In these cases and others, if some significant fraction of the fields in a form could be filled out more quickly, or even automatically filled out, the result could be a valuable increase in productivity and accuracy, benefiting the bottom line for many companies and/or individuals.
A number of different approaches to this problem have been tried in the past. Some existing systems have automatically filled out the entirety of certain types of forms with personal information associated with an individual user, such as the user's name, address, credit card numbers, etc. This approach is the basis of existing solutions such as Microsoft® Wallet, which was at one time an optional component of Microsoft Internet Explorer®. In that technology, a user was allowed to enter personal information into the application program, and then to automatically send that previously entered information (e.g. name, address, credit card number, etc.) to cooperating Websites. However, this type of solution has been plagued by security problems, and typically only worked for a predefined set of personal data items that the application was programmed to recognize. Other examples of this prior approach include Mozilla's Automatic Form Fill feature, Softinform's iNetFormFiller, and Patil Systems' LiveFORM.
Another existing approach to this problem has been field autocompletion, as has been provided in existing systems such as Microsoft Internet Explorer. In this approach, each individual form field “remembers” previous values which have been entered into that field, and suggests these values based on the initial letters entered into that field by the user. For example, typing “Ma” into a “STATE:” field might be sufficient in such systems to trigger the suggestion of “Massachusetts” and “Maryland”. This type of existing solution has at least two significant shortcomings. First, it includes no way to rate the suggested autocompletions by probability. Accordingly, there is no way to take into account the fact that, in an application offered nationwide, “W” is more likely to be an indicator for “Washington” than for “Wyoming”, whereas the opposite might be true for an application offered to users by a local company based in Cheyenne, Wyo. Second, autocompletion typically applies to only a single field at a time. It does not use the values of other fields in the form to improve its recommendations.
Still other existing approaches have suggested the most-commonly-used value for a field, based on previous values entered into that field. For example, the offered options for a “COUNTRY:” field might list “United States” first, rather than require the user to scroll down a list of countries to just before the “Uzbekistan” entry in order to select it. This is a first-order approach and uses only the “prior probabilities” (a term of art, viz. http://en.wikipedia.org/wiki/Prior_probability) to suggest most-likely values of the field. And some existing systems have operated to lookup form values from a database, thus essentially hard-coding the form/field relationship's in advance. The drawback of these approaches is that they do not take advantage of all available information in the form. In particular, they do not use the values from previously filled out fields in the form to make a better guess as to the value of subsequent fields. By not having this ability, they are not able to make as many correct guesses, and therefore require their users to perform more manual data entry, with resulting less productivity.
For these reasons and others, it would be desirable to have a new system for autocompletion of multiple fields in electronic forms. The new system should be generally applicable beyond a predefined set of personal data items, be able to rate and present field options using probabilities based on values of other fields in previously completed forms, and also use the values of previously filled out fields in a current form with regard to generating the probabilities used to rate and present the options for subsequent fields in the current form.